home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / FusionIcon / interface.py < prev    next >
Text File  |  2008-11-09  |  2KB  |  90 lines

  1. # This file is part of Fusion-icon.
  2.  
  3. # Fusion-icon is free software; you can redistribute it and/or modify
  4. # it under the terms of the GNU General Public License as published by
  5. # the Free Software Foundation; either version 2 of the License, or
  6. # (at your option) any later version.
  7. #
  8. # Fusion-icon is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. # GNU General Public License for more details.
  12. #
  13. # You should have received a copy of the GNU General Public License
  14. # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  15. #
  16. # Author(s): crdlb, nesl247
  17. #
  18. # Copyright 2007 Christopher Williams <christopherw@verizon.net> 
  19.  
  20. import sys
  21. from util import env
  22. import start
  23.  
  24. interfaces={
  25.     'gtk': 'GTK',
  26.     'qt4': 'Qt4',
  27.     'qt3': 'Qt3',
  28. }
  29.  
  30. def import_interface(interface):    
  31.     try:
  32.         if interface in interfaces:
  33.             print ' * Using the', interfaces[interface], 'Interface'
  34.             __import__('FusionIcon.interface_%s' %interface)
  35.         
  36.         else:
  37.             print ' *** Error: "%s" interface is invalid, this should not happen' %interface
  38.             raise SystemExit
  39.  
  40.     except ImportError, e:
  41.         if [i for i in interfaces if 'interface_%s' %i in str(e)]:
  42.             print ' * Interface not installed'
  43.         else:
  44.             print ' *', e
  45.  
  46.         #doesn't work so remove it from the dict
  47.         del interfaces[interface]
  48.         if interfaces:
  49.             print ' ... Trying another interface'
  50.             choose_interface()
  51.         else:
  52.             print ' *** Error: All interfaces failed, aborting!'
  53.             raise SystemExit
  54.  
  55. def choose_interface(try_first=None):
  56.  
  57.     chosen_interface = None
  58.  
  59.     # handle explicit choice first
  60.     if try_first:
  61.         if try_first in interfaces:
  62.             chosen_interface = try_first
  63.         else:
  64.             raise SystemExit, ' *** Error: No such interface: %s' %try_first
  65.     else:
  66.  
  67. # gtk for everybody for now
  68.         # use qt for kde; gtk for everything else:
  69. #        if 'qt4' in interfaces and env.desktop == 'kde':
  70. #            chosen_interface = 'qt4'
  71.  
  72. #        elif 'qt3' in interfaces and env.desktop == 'kde':
  73. #            chosen_interface = 'qt3'
  74.  
  75.         if 'gtk' in interfaces:
  76.             chosen_interface = 'gtk'
  77.  
  78.         # try qt* for non-kde:
  79.         elif 'qt4' in interfaces:
  80.             chosen_interface = 'qt4'
  81.         elif 'qt3' in interfaces:
  82.             chosen_interface = 'qt3'
  83.  
  84.         # interfaces is empty
  85.         else:
  86.             raise SystemExit, ' *** no available interfaces, this should not happen'
  87.  
  88.     import_interface(chosen_interface)
  89.  
  90.